package com.chapter16;

import java.util.ArrayList;
import java.util.List;

public class GrayCode {

	public List<Integer> getGrayCode(List<Integer> l,int n,int current){
		if(current==1){
			l.add(0);
			l.add(1);
		}
		if(current==n)
			return l;
		int sizz=l.size();
		for(int i=sizz-1;i>=0;i--){
			l.set(i, l.get(i)<<1);
			l.add(l.get(i)+1);
		}
		return getGrayCode(l,n,current+1);
	}
	
	public void  testgrayCode(){
		List<Integer> l=new ArrayList<Integer>();
		System.out.println(getGrayCode(l, 3, 1));
	}
}
